/****************************************************************
 *This file is define.h
 ****************************************************************/
#ifndef __DEFINE_H_
#define __DEFINE_H_

#include "include.h"

#define	TST_CODE_SWITCH

// 存放socket和客户端信息
typedef struct pthread_socket
{
	int sockfd;
	struct in_addr client_addr;
	unsigned short client_port;

}pthread_socket_message;


// 回调函数格式
typedef struct pc_command{
    unsigned int pc_command_code;
    void (*pc_command_func)(cJSON *in_data_p,  cJSON *ack_data_p);
}pc_cmd_str;

//GET net command port
#define NET_COMMAND_PORT					20175

//GET net command port
#define STREAM_PORT							20373
#define STREAM_PORT_TWO						20375

//net receive command buffer length
#define NET_COMMAND_BUF_LEN 				(32)

// 一次TCP接收数据的长度
#define TCP_RECEIVE_ONCE_NUM				(1400)

// 支持上位机的方法个数
#define PC_COMMAND_NUM                      50

// socket的发送和接收超时，3000为3s
#define SOCKET_SEND_TIMETOUT				2000
#define SOCKET_REV_TIMETOUT					2000

// 标志状态
#define FLAG_VALID							0x55
#define FLAG_INVALID						0xaa

// 最大文件描述符个数
#define MAX_FD_NUM							65535

// RS422起始的绑定端口
#define HITMC_START_PORT					23000
#define HITMC_START_PORT_TWO				24000

// 重映射AXI-LITE空间起始地址和空间长度
#define MMAP_ADDR 0x60000000
#define MMAP_SIZE 0x2000000

// hitmc visa return
#define 	VI_ERR							-1

// hitmc visa return
#define 	_422_CHANNEL_NUM				17
#define 	_422_FIFO_BUF_LEN				(16 * 1024 * 1024)

// 配置取数指令个数
#define 	COMMAND_LEN						4096
#define 	CONFIG_COMMAND_NUM				100

// PCM缓冲区长度
#define PCM_RD_LEN							200000

// PCM上传端口
#define BOARDCAST_REV_PCM_PORT_TWO			30267

// 第一组PCM内回环发送网络信息
#define ONE_LO_PCM_BOARDCAST_IP		        "236.0.168.160"
#define ONE_LO_PCM_DEV_IP		            "127.0.0.1"
#define ONE_LO_PCM_BOARDCAST_PORT	   		31265

// 第一组PCM对外发送网络信息
#define ONE_NET_PCM_BOARDCAST_IP	        "235.0.168.160"
#define ONE_NET_PCM_DEV_IP		            "192.168.251.251"
#define BOARDCAST_REV_PCM_PORT				30265

// PCM存储缓冲区长度
#define PCM_STORE_BUF_LEN					1048576
#define PCM_STORE_UP_LIMIT					1000000
#define PCM_STORE_USE_ONE					0x55
#define PCM_STORE_USE_TWO					0xaa
#define START_PCM_STORE						0x55
#define STOP_PCM_STORE						0xaa

// 存储空间目录
#define PCM_SPACE_PATH						"/home/root/usr_data"
#define PCM_LOG_PATH						"/home/root/usr_log"

// 系统监测标志
#define START_SYSTEM_MONITOR				0x55
#define STOP_SYSTEM_MONITOR					0xaa

// PCM剩余空间下限，最少不能小于700M
#define PCM_LEFT_LIMIT						700

// 日志剩余空间下限，最少不能小于150M
#define LOG_LEFT_LIMIT						150

// 系统监测标志
#define FLAG_VALID							0x55
#define FLAG_INVALID						0xaa

// 发送日志指令IP和端口地址
#define WR_SYSLOG_IP                        0x7f000001   //127.0.0.1
#define WR_SYSLOG_PORT                      19021

// 接收系统日志端口
#define RECEIVE_SYSLOG_IP                   0x7f000001   //127.0.0.1
#define RECEIVE_SYSLOG_PORT                 19021

// 接收日志数据缓冲区长度
#define REV_LOG_BUF_LEN              		65536

#endif